/*******************************************************************************
* Copyright (c) 2006, 2011 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.parser.upc;

public class UPCSizeofExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, UPCSizeofExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3,1,
            1,4,4,3,3,2,2,4,1,0,
            1,1,2,2,2,2,2,2,2,2,
            2,1,4,1,3,3,3,1,3,3,
            1,3,3,1,3,3,3,3,1,3,
            3,1,3,1,3,1,3,1,3,1,
            3,1,5,1,3,3,3,3,3,3,
            3,3,3,3,3,1,1,2,1,0,
            1,3,1,1,1,1,1,1,1,1,
            3,4,3,2,4,1,2,1,1,1,
            2,5,7,5,1,0,7,2,5,9,
            8,3,2,2,2,3,2,4,2,2,
            2,2,2,1,1,1,1,2,1,2,
            2,2,1,2,2,1,2,2,1,2,
            2,1,2,2,1,3,1,3,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,6,
            8,0,0,1,1,3,3,3,0,1,
            0,1,2,4,2,1,1,1,3,1,
            1,2,3,7,8,0,1,0,1,3,
            1,3,1,1,1,1,1,1,3,1,
            1,1,1,1,3,1,2,2,1,5,
            3,1,3,5,1,3,1,3,2,4,
            3,5,4,6,6,3,5,1,3,4,
            5,6,0,1,2,1,3,1,1,3,
            2,1,1,1,1,2,1,2,3,1,
            1,1,3,1,2,2,2,3,4,5,
            1,1,7,3,0,0,1,1,3,3,
            4,1,1,2,3,2,3,2,1,0,
            1,2,1,1,1,1,1,2,1,3,
            6,4,2,4,1,1,1,1,1,2,
            2,2,1,1,2,1,1,1,3,3,
            2,1,3,2,3,2,3,2,2,11,
            10,10,9,10,9,9,8,10,9,9,
            8,9,8,8,7,10,9,9,8,9,
            8,8,7,1,1,-39,0,0,0,0,
            0,0,0,0,0,0,-2,0,0,0,
            0,0,0,0,0,0,-80,0,0,0,
            0,-163,-120,0,-74,0,0,0,0,-145,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-174,0,-108,-36,-37,0,0,0,
            0,-82,0,0,-4,0,-32,0,-17,0,
            0,0,0,0,0,0,0,-126,0,-33,
            0,0,0,0,-45,0,0,0,0,0,
            0,0,0,0,0,0,-181,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-136,0,0,-57,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-72,0,0,0,0,-141,-70,
            -121,0,0,-54,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-194,0,-19,0,0,0,0,0,0,
            -71,0,-5,0,0,0,0,0,0,0,
            0,0,0,0,0,-196,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-75,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-122,0,
            0,0,-123,0,0,-124,0,-183,0,0,
            -3,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-112,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-119,0,0,0,0,0,0,0,
            0,0,0,-20,0,0,0,0,0,0,
            0,0,-21,0,-49,0,0,0,0,0,
            0,0,0,0,0,-50,0,0,0,0,
            0,0,0,0,0,0,-132,0,0,0,
            0,0,0,0,0,0,0,-22,0,0,
            0,0,0,0,0,0,0,0,-30,0,
            0,0,0,0,0,0,0,0,0,-113,
            0,0,0,0,0,0,0,0,0,-59,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -60,0,0,0,0,0,0,0,0,0,
            0,-131,0,0,0,0,0,0,0,0,
            0,-61,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-62,0,0,0,0,0,0,0,
            0,0,0,-139,0,0,0,0,0,0,
            0,0,0,-63,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-64,0,0,0,0,0,
            0,0,0,0,0,-150,0,0,0,0,
            0,0,0,0,0,-65,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-66,0,0,0,
            0,0,0,0,0,0,0,-166,0,0,
            0,0,0,0,0,0,0,-67,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-68,0,
            0,0,0,0,0,0,0,0,0,-167,
            0,0,0,0,0,0,0,0,0,-69,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -125,0,0,0,0,0,0,0,0,0,
            0,-197,0,0,0,0,0,0,0,0,
            0,-148,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-149,0,0,0,0,0,0,0,
            0,0,0,-23,0,0,0,0,0,0,
            0,0,0,-184,0,0,0,0,0,0,
            0,0,0,0,-129,0,0,0,0,0,
            0,0,0,-193,0,0,0,0,0,0,
            0,0,0,0,-84,0,0,0,0,0,
            0,0,0,0,-198,0,0,-73,0,0,
            0,0,0,0,0,-199,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-205,0,0,0,0,
            0,0,0,0,0,0,-127,0,0,0,
            0,0,0,0,0,-107,0,0,0,-173,
            -180,0,0,-77,-78,-89,0,-213,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-81,-85,0,0,0,0,-24,
            0,0,-142,-135,0,-25,-155,-146,-144,0,
            0,-161,0,0,0,0,0,0,0,0,
            0,0,-208,0,0,0,0,0,0,0,
            0,0,0,-152,-35,0,0,0,0,0,
            0,0,0,0,0,0,-147,0,0,0,
            0,0,-26,0,-160,-27,-28,0,0,0,
            -87,0,0,0,-164,0,-153,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-40,0,0,0,0,0,
            0,0,0,0,0,-29,0,0,-90,0,
            -58,0,0,0,0,0,0,0,0,0,
            0,-171,0,0,0,0,0,-55,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-6,0,0,0,0,0,0,0,
            0,-190,-172,-91,-116,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-51,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-92,-93,0,0,0,0,0,
            0,0,-41,0,0,0,0,0,0,0,
            0,0,-52,0,0,0,0,0,0,0,
            0,0,0,-134,0,-53,0,0,0,0,
            0,0,0,0,0,0,-212,0,-94,-154,
            -118,-185,-157,-95,0,0,-96,0,-97,0,
            -98,0,-176,0,0,-46,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-162,
            0,0,0,0,0,0,0,-9,0,0,
            0,0,0,0,0,-99,0,-47,0,0,
            0,0,0,0,0,0,0,0,-48,0,
            0,0,0,0,0,0,0,0,0,-79,
            -207,-10,0,0,0,0,0,0,0,0,
            0,0,0,-177,-100,-76,-168,-101,-102,-110,
            0,0,0,0,0,-191,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-192,-56,-83,0,0,-103,
            0,-203,-204,-104,0,0,0,-195,-86,0,
            0,0,0,0,0,0,0,-105,0,0,
            0,0,-88,-156,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-106,-201,
            0,-210,0,0,0,0,-115,0,0,0,
            0,0,0,0,-140,0,0,0,0,0,
            0,0,0,0,-214,0,0,0,-7,0,
            0,0,0,0,0,0,-151,0,0,0,
            0,0,0,0,-11,0,0,0,0,0,
            0,0,-109,0,-111,0,-128,0,0,0,
            0,0,0,0,0,-12,0,0,0,0,
            0,0,0,-13,0,0,0,0,0,0,
            0,-14,0,0,0,0,0,0,0,-38,
            -42,0,0,0,0,0,0,0,-137,-143,
            0,-43,0,0,0,0,0,0,0,-44,
            0,0,0,0,0,0,0,0,-117,-1,
            -170,-169,-8,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-15,0,0,
            0,0,0,0,-158,0,0,0,0,0,
            0,-16,0,0,0,0,0,0,-18,-114,
            -209,0,-178,-179,-130,-31,-182,0,-159,0,
            0,0,-202,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -206,-189,0,-175,-211,0,0,0,0,-188,
            0,0,0,-34,0,-165,0,0,0,0,
            0,-133,-138,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-186,0,0,0,-187,0,0,
            0,-200,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
	public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
	public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            89,11,105,21,21,26,26,41,41,71,
            71,1,1,2,2,2,2,3,3,3,
            4,5,5,5,5,5,5,5,5,61,
            61,72,6,6,6,6,6,6,6,6,
            6,6,7,7,8,8,8,8,9,9,
            9,10,10,10,12,12,12,12,12,13,
            13,13,14,14,15,15,16,16,17,17,
            18,18,19,19,20,20,20,20,20,20,
            20,20,20,20,20,20,106,48,42,90,
            90,74,74,43,107,107,107,107,107,107,
            107,108,108,108,109,109,114,114,115,115,
            110,110,111,111,111,117,117,112,112,112,
            112,112,113,113,113,113,113,116,116,27,
            27,27,27,27,30,30,30,80,80,75,
            75,75,75,76,76,76,77,77,77,78,
            78,78,79,79,79,118,118,119,119,120,
            31,33,33,33,33,33,55,56,56,56,
            56,56,56,56,56,56,56,56,56,65,
            62,62,91,92,67,67,63,63,63,68,
            81,81,82,82,69,69,69,51,93,93,
            83,84,84,84,64,64,94,85,85,86,
            86,70,70,22,23,23,23,32,50,50,
            34,34,34,34,37,37,39,35,35,36,
            40,40,121,121,38,122,122,95,95,28,
            28,28,28,28,28,28,28,28,87,52,
            52,52,52,29,58,58,57,57,57,59,
            59,53,53,96,96,73,73,60,60,60,
            44,44,44,45,46,46,46,47,47,47,
            47,66,66,49,49,54,98,97,97,97,
            97,88,99,100,100,101,101,102,102,123,
            123,124,124,125,125,125,125,127,127,126,
            126,126,128,129,129,89,89,2,2,2,
            6,6,6,22,22,24,24,25,25,103,
            103,103,107,130,130,130,130,130,130,130,
            112,112,112,112,112,112,112,112,112,112,
            112,112,112,112,112,112,112,112,112,112,
            112,112,112,112,131,131,1,1289,17,21,
            18,439,1286,44,684,554,728,760,693,1190,
            1044,1243,1196,1247,1246,74,91,866,135,213,
            323,324,227,184,529,25,137,134,136,160,
            582,20,17,21,18,439,1286,44,684,554,
            728,392,693,1190,1044,1243,1196,1247,1246,74,
            281,139,166,690,1635,6,324,324,143,146,
            149,152,53,432,1332,40,448,125,31,69,
            435,1480,1184,1527,1539,1553,1156,1500,541,282,
            125,31,1098,19,1633,648,20,17,21,18,
            439,42,44,684,554,1365,287,354,20,17,
            21,18,439,1286,44,684,554,728,392,693,
            1190,1044,1243,1196,1247,1246,74,281,288,284,
            325,1747,1412,293,195,225,179,1440,648,20,
            17,21,18,439,42,44,684,554,728,25,
            693,1190,1044,1243,1196,1548,282,135,213,323,
            324,1633,24,393,237,137,134,136,160,59,
            324,125,187,289,648,20,17,21,18,439,
            42,44,684,554,728,22,693,1190,1044,1499,
            139,166,125,1743,392,290,1146,143,146,149,
            152,324,432,681,20,17,21,18,439,322,
            1480,1184,1527,1539,1553,1156,615,20,17,21,
            18,439,1286,44,684,554,728,23,693,1190,
            1044,1243,1196,1247,1246,74,281,281,20,17,
            21,18,439,1286,44,684,554,728,1740,693,
            1190,1044,1243,1196,1247,1246,74,750,239,125,
            186,1725,210,769,1680,282,125,188,125,296,
            1633,648,20,17,21,18,439,1286,44,684,
            554,728,291,693,1190,1044,1243,1196,1247,1246,
            74,91,714,20,17,21,18,439,1286,44,
            684,554,728,1745,693,1190,1044,1243,1196,1247,
            1246,74,792,474,20,17,21,18,439,42,
            44,684,554,728,364,693,1190,1044,1243,1196,
            1247,1246,93,15,331,648,20,17,21,18,
            439,42,44,684,1419,435,648,20,17,21,
            18,439,42,44,684,1421,834,315,20,17,
            21,18,439,1286,44,684,554,728,39,693,
            1190,1044,1243,1196,1247,1246,74,876,240,648,
            20,17,21,18,439,1286,44,684,554,728,
            237,693,1190,1044,1243,1196,1247,1246,74,92,
            648,20,17,21,18,439,1286,44,684,554,
            728,241,693,1190,1044,1243,1196,1247,1246,74,
            85,648,20,17,21,18,439,1286,44,684,
            554,728,237,693,1190,1044,1243,1196,1247,1246,
            74,84,648,20,17,21,18,439,1286,44,
            684,554,728,243,693,1190,1044,1243,1196,1247,
            1246,74,83,648,20,17,21,18,439,1286,
            44,684,554,728,237,693,1190,1044,1243,1196,
            1247,1246,74,82,648,20,17,21,18,439,
            1286,44,684,554,728,329,693,1190,1044,1243,
            1196,1247,1246,74,81,648,20,17,21,18,
            439,1286,44,684,554,728,237,693,1190,1044,
            1243,1196,1247,1246,74,80,648,20,17,21,
            18,439,1286,44,684,554,728,242,693,1190,
            1044,1243,1196,1247,1246,74,79,648,20,17,
            21,18,439,1286,44,684,554,728,237,693,
            1190,1044,1243,1196,1247,1246,74,78,648,20,
            17,21,18,439,1286,44,684,554,728,244,
            693,1190,1044,1243,1196,1247,1246,74,77,648,
            20,17,21,18,439,1286,44,684,554,728,
            237,693,1190,1044,1243,1196,1247,1246,74,76,
            648,20,17,21,18,439,1286,44,684,554,
            728,245,693,1190,1044,1243,1196,1247,1246,74,
            75,648,20,17,21,18,439,1286,44,684,
            554,728,237,693,1190,1044,1243,1196,1247,1246,
            74,73,648,20,17,21,18,439,1286,44,
            684,554,728,295,693,1190,1044,1243,1196,1247,
            1246,74,918,648,20,17,21,18,439,1286,
            44,684,554,728,401,693,1190,1044,1243,1196,
            1247,1246,74,960,648,20,17,21,18,439,
            42,44,684,554,728,25,693,1190,1044,1243,
            1196,1247,1246,93,648,20,17,21,18,439,
            42,44,684,554,728,322,693,1190,1044,1243,
            1196,1247,1246,93,1237,125,298,1002,549,20,
            17,21,18,439,42,43,648,20,17,21,
            18,439,42,44,684,554,728,212,693,1190,
            1044,1243,1196,1247,1246,93,648,20,17,21,
            18,439,42,44,684,554,728,6,693,1190,
            1044,1243,1196,1247,1246,93,767,28,400,1582,
            541,541,1633,531,792,686,225,179,648,20,
            17,21,18,439,42,44,684,554,728,202,
            693,1190,1044,1243,1196,1247,1246,93,135,213,
            323,324,275,276,768,414,138,134,136,160,
            73,180,1538,6,389,28,400,25,25,6,
            1633,203,482,1743,1749,1197,135,213,323,324,
            1202,140,166,25,145,134,136,160,144,147,
            150,153,274,432,348,6,1635,1255,218,1257,
            221,1410,223,224,229,1702,631,239,267,1155,
            1154,272,1635,450,263,6,186,77,1786,1302,
            277,446,274,619,264,402,1423,871,218,1257,
            221,1410,223,224,229,1605,1834,87,267,1155,
            1154,272,209,524,1497,648,20,17,21,18,
            439,42,44,1334,1335,228,771,1494,1744,747,
            261,648,20,17,21,18,439,42,44,684,
            554,728,587,693,1190,1044,1243,1579,648,20,
            17,21,18,439,42,44,684,554,728,626,
            693,1190,1530,681,20,17,21,18,439,321,
            274,1637,253,6,480,324,219,1257,221,1410,
            223,224,229,1213,1772,623,269,1155,1154,272,
            648,20,17,21,18,439,42,44,684,554,
            728,273,693,1456,592,488,218,1257,221,1410,
            223,224,229,648,20,17,21,18,439,42,
            44,1364,1771,648,20,17,21,18,439,42,
            44,684,554,728,324,1495,648,20,17,21,
            18,439,42,44,684,554,728,253,1498,667,
            846,454,291,324,733,198,200,773,1213,750,
            279,800,1793,482,1743,1533,648,20,17,21,
            18,439,42,44,684,554,1409,278,227,280,
            874,218,1257,221,1410,223,224,229,648,20,
            17,21,18,439,42,40,129,1771,648,20,
            17,21,18,439,42,44,684,554,1414,648,
            20,17,21,18,439,42,44,684,554,1417,
            388,87,648,20,17,21,18,439,42,39,
            199,200,1213,209,875,75,238,324,131,590,
            620,1151,135,213,323,324,875,1699,1506,1744,
            142,134,136,160,294,218,1257,221,1410,223,
            224,229,277,225,274,541,6,788,274,1637,
            672,1497,541,653,351,141,166,631,61,808,
            267,1155,1154,272,269,1155,1154,272,547,135,
            213,323,324,828,689,1525,1335,148,134,136,
            160,135,213,323,324,495,204,1741,87,151,
            134,136,160,181,1534,135,213,323,324,820,
            324,1194,237,154,134,136,160,440,20,17,
            21,18,439,42,36,440,20,17,21,18,
            439,42,36,297,194,719,230,260,246,681,
            20,17,21,18,439,320,330,440,20,17,
            21,18,439,42,36,648,20,17,21,18,
            439,42,38,867,1637,625,283,869,247,219,
            1257,221,1410,223,224,229,648,20,17,21,
            18,439,42,37,648,20,17,21,18,439,
            42,36,648,20,17,21,18,439,42,35,
            70,648,20,17,21,18,439,42,47,481,
            870,395,648,20,17,21,18,439,42,46,
            648,20,17,21,18,439,42,45,274,361,
            508,454,361,681,20,17,21,18,439,41,
            495,631,1780,495,267,1155,1154,272,681,20,
            17,21,18,439,34,872,1194,231,1635,1194,
            266,1635,681,20,17,21,18,439,33,6,
            127,541,87,623,876,127,6,826,315,57,
            366,1500,259,251,1302,259,1394,366,1679,1394,
            495,1679,254,213,323,324,197,254,213,323,
            324,831,169,197,113,181,197,1907,1907,234,
            809,87,205,495,287,495,127,427,87,377,
            1670,495,183,171,427,631,1907,1670,1792,197,
            423,197,1907,1792,495,1907,1907,1194,254,213,
            323,324,426,1907,255,213,323,324,192,530,
            1194,1907,1907,423,1907,423,89,717,1907,1907,
            1150,1774,1012,259,127,1907,1907,1580,507,1679,
            1907,192,548,193,1838,1907,259,1907,1907,1907,
            1413,1907,1679,1532,1774,1907,254,213,323,324,
            255,213,323,324,255,213,323,324,1907,1907,
            1907,1907,1907,1907,561,1753,1907,1907,1907,1907,
            1907,1907,1907,1907,1907,1907,1907,1907,1907,1907,
            1907,1907,1842,1907,0,326,673,0,20,179,
            0,1,2133,0,1,2144,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
	public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
	public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,0,6,7,8,9,
            10,11,12,13,0,15,16,17,18,19,
            20,21,22,23,0,25,26,27,28,29,
            30,31,32,33,34,35,36,37,0,0,
            40,41,42,43,44,45,46,47,48,49,
            50,51,0,53,54,55,0,1,0,3,
            0,5,6,7,8,9,10,11,0,0,
            2,2,0,4,0,19,0,38,64,65,
            66,67,14,14,16,17,0,1,2,33,
            34,35,36,37,56,57,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,0,1,0,3,60,5,6,7,
            8,9,10,11,0,1,0,3,0,61,
            0,19,6,7,8,9,10,11,64,65,
            66,67,70,71,76,33,34,35,36,37,
            74,0,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,0,1,
            0,3,60,5,6,7,8,9,10,11,
            0,1,0,0,1,0,3,19,6,7,
            8,9,10,11,64,65,66,67,70,71,
            0,33,34,35,36,37,0,24,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,54,55,0,1,0,3,60,59,
            6,7,8,9,10,11,0,0,0,2,
            14,5,5,19,6,7,8,9,10,11,
            0,14,0,1,2,5,0,33,34,35,
            36,37,77,78,40,41,42,43,44,45,
            46,47,48,49,50,51,39,53,54,55,
            0,1,2,3,4,5,0,61,38,39,
            0,5,12,13,58,15,16,17,18,19,
            20,21,22,23,14,25,26,27,28,29,
            30,31,32,0,0,1,2,3,4,5,
            68,0,1,0,3,39,12,13,5,15,
            16,17,18,19,20,21,22,23,58,25,
            26,27,28,29,30,31,32,0,1,2,
            0,61,5,0,1,2,3,4,5,0,
            0,14,39,0,4,12,13,4,15,16,
            17,18,58,20,21,22,23,24,25,26,
            27,28,29,30,31,32,39,0,0,1,
            2,0,4,6,7,8,9,10,11,0,
            0,0,14,12,13,52,19,6,7,8,
            9,10,11,0,1,15,3,0,68,59,
            33,34,35,36,37,62,63,40,41,42,
            43,44,45,46,47,48,49,50,51,0,
            1,2,3,4,5,0,1,0,3,0,
            0,12,13,0,15,16,17,18,5,20,
            21,22,23,0,25,26,27,28,29,30,
            31,32,73,0,1,2,3,4,5,0,
            0,0,1,4,3,12,13,0,15,16,
            17,18,39,20,21,22,23,58,25,26,
            27,28,29,30,31,32,0,0,1,2,
            3,4,6,7,8,9,10,11,38,12,
            13,72,15,16,17,18,0,20,21,22,
            23,58,25,26,27,28,29,30,31,32,
            0,62,63,56,57,5,0,0,0,1,
            2,3,4,6,7,8,9,10,11,0,
            12,13,0,15,16,17,18,60,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,0,1,2,3,4,0,1,2,0,
            4,0,52,12,13,4,15,16,17,18,
            14,20,21,22,23,24,25,26,27,28,
            29,30,31,32,0,1,2,3,4,0,
            74,2,0,4,0,0,12,13,4,15,
            16,17,18,14,20,21,22,23,24,25,
            26,27,28,29,30,31,32,0,1,2,
            3,4,0,62,63,0,1,5,3,12,
            13,72,15,16,17,18,0,20,21,22,
            23,0,25,26,27,28,29,30,31,32,
            0,1,2,3,4,0,15,2,0,0,
            38,69,12,13,5,15,16,17,18,14,
            20,21,22,23,0,25,26,27,28,29,
            30,31,32,0,1,2,3,4,0,1,
            2,0,56,57,0,12,13,75,15,16,
            17,18,0,20,21,22,23,0,25,26,
            27,28,29,30,31,32,0,59,2,0,
            4,5,6,7,8,9,10,11,0,0,
            14,12,13,5,75,19,0,0,0,1,
            0,3,0,6,7,8,9,10,11,33,
            34,35,36,37,0,39,19,0,56,57,
            24,0,24,6,7,8,9,10,11,0,
            33,34,35,36,37,14,19,0,0,1,
            52,12,13,6,7,8,9,10,11,0,
            33,34,35,36,37,0,19,0,56,57,
            0,0,0,6,7,8,9,10,11,69,
            33,34,35,36,37,0,19,2,89,79,
            80,81,82,83,84,85,86,87,88,14,
            33,34,35,36,37,0,0,59,0,0,
            0,0,4,0,0,0,0,0,0,14,
            0,0,0,0,14,0,0,0,0,0,
            24,0,73,24,69,24,0,0,68,0,
            24,24,24,0,0,0,0,0,0,0,
            0,38,38,38,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
	public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            1907,1918,1739,1919,1654,1,2121,2122,2123,2234,
            387,2235,1646,1625,59,1662,1732,1718,1703,2070,
            1920,1921,1922,1923,253,1482,1448,2224,2225,2226,
            1609,1323,563,2071,2069,2124,2072,2068,54,88,
            2075,2080,2079,2077,2078,2076,2081,2082,2074,2083,
            2084,2085,182,1251,1185,1085,1907,1,183,1,
            286,191,1,1,1,1,1,1,32,265,
            1784,1496,62,1,61,1,70,739,1469,1458,
            1426,455,1225,597,1933,1934,1,2133,1481,1,
            1,1,1,1,695,706,1,1,1,1,
            1,1,1,1,1,1,1,1,191,1,
            1,1,1907,1,1907,1,2103,190,1,1,
            1,1,1,1,1907,1918,1907,1919,63,450,
            60,1,2121,2122,2123,2234,387,2235,1469,1458,
            1426,455,1396,1383,437,1,1,1,1,1,
            1291,1907,1,1,1,1,1,1,1,1,
            1,1,1,1,190,1,1,1,1907,1,
            1,1,2103,191,1,1,1,1,1,1,
            1907,2145,248,1907,1918,72,1919,1,2121,2122,
            2123,2234,387,2235,1469,1458,1426,455,1396,1383,
            1907,1,1,1,1,1,1907,1193,1,1,
            1,1,1,1,1,1,1,1,1,1,
            191,1,1,1,1907,1918,1907,1919,2103,2165,
            2121,2122,2123,2234,387,2235,1907,1,249,1496,
            1054,1911,1913,2070,1,1,1,1,1,1,
            1907,597,1,2133,1481,1913,1907,2071,2069,2124,
            2072,2068,498,1526,2075,2080,2079,2077,2078,2076,
            2081,2082,2074,2083,2084,2085,1912,1251,1185,1085,
            1,1918,1739,1919,1587,1911,1,628,1775,1912,
            292,90,1646,1625,1910,1662,1732,1718,1703,652,
            1920,1921,1922,1923,1106,1482,1448,2224,2225,2226,
            1609,1323,563,1907,1907,1918,1739,1919,1617,1911,
            1126,185,3149,1907,3149,90,1646,1625,1913,1662,
            1732,1718,1703,1033,1920,1921,1922,1923,1910,1482,
            1448,2224,2225,2226,1609,1323,563,1,1901,1224,
            1907,1095,1913,1,1918,1739,1919,1654,29,1907,
            1,597,1912,48,253,1646,1625,1690,1662,1732,
            1718,1703,1910,1920,1921,1922,1923,3031,1482,1448,
            2224,2225,2226,1609,1323,563,1912,129,262,2133,
            1224,51,1,2121,2122,2123,2234,387,2235,68,
            64,250,597,1373,1275,29,2070,1,1,1,
            1,1,1,184,3150,1350,3150,1907,991,2165,
            2071,2069,2124,2072,2068,1682,1671,2075,2080,2079,
            2077,2078,2076,2081,2082,2074,2083,2084,2085,1907,
            1918,1739,1919,1654,1911,206,3151,1907,3151,66,
            1907,1646,1625,1,1662,1732,1718,1703,1913,1920,
            1921,1922,1923,1907,1482,1448,2224,2225,2226,1609,
            1323,563,534,1907,1918,1739,1919,1595,1911,50,
            256,208,1918,1690,1919,1646,1625,58,1662,1732,
            1718,1703,1912,1920,1921,1922,1923,1910,1482,1448,
            2224,2225,2226,1609,1323,563,251,1907,1,1,
            1,1,2121,2122,2123,2234,387,2235,1554,1,
            1,1308,1,1,1,1,1907,1,1,1,
            1,1910,1,1,1,1,1,1,1,1,
            1907,1682,1671,695,706,1915,71,252,1907,1918,
            1739,1919,1654,2121,2122,2123,2234,387,2235,1907,
            1646,1625,1907,1662,1732,1718,1703,2223,1920,1921,
            1922,1923,3031,1482,1448,2224,2225,2226,1609,1323,
            563,1,1918,1739,1919,1654,268,2133,1224,67,
            253,49,1914,1646,1625,1690,1662,1732,1718,1703,
            597,1920,1921,1922,1923,3031,1482,1448,2224,2225,
            2226,1609,1323,563,1907,1918,1739,1919,1654,268,
            1291,1496,211,253,1907,1907,1646,1625,1065,1662,
            1732,1718,1703,597,1920,1921,1922,1923,3031,1482,
            1448,2224,2225,2226,1609,1323,563,1907,1918,1739,
            1919,1654,1907,1682,1671,207,552,1917,552,1646,
            1625,1308,1662,1732,1718,1703,57,1920,1921,1922,
            1923,65,1482,1448,2224,2225,2226,1609,1323,563,
            1907,1918,1746,1919,1654,270,1350,1411,1,1,
            1407,1074,1646,1625,1917,1662,1732,1718,1703,597,
            1920,1921,1922,1923,1907,1482,1448,2224,2225,2226,
            1609,1323,563,1,1918,1739,1919,1654,253,2133,
            1481,1907,695,706,1907,1646,1625,1916,1662,1732,
            1718,1703,56,1920,1921,1922,1923,1907,1482,1448,
            2224,2225,2226,1609,1323,563,20,2164,1898,53,
            1898,1898,179,179,179,179,179,179,285,1907,
            1898,1373,1275,425,1916,179,1907,130,1907,1918,
            42,1919,55,2121,2122,2123,2234,387,2235,179,
            179,179,179,179,1907,1898,2070,131,695,706,
            3031,271,1199,2121,2122,2123,2234,387,2235,52,
            2071,2069,2124,2072,2068,597,2070,132,1,1904,
            425,1373,1275,2121,2122,2123,2234,387,2235,69,
            2071,2069,2124,2072,2068,1907,2070,133,695,706,
            201,1907,1907,2121,2122,2123,2234,387,2235,970,
            2071,2069,2124,2072,2068,222,2070,1701,1894,949,
            928,907,886,865,823,844,802,781,760,597,
            2071,2069,2124,2072,2068,326,1907,2165,1907,1907,
            220,1907,1198,30,30,207,189,189,189,1895,
            1907,1907,1907,1907,597,1907,1907,1907,1907,1907,
            1137,1907,534,1245,576,1333,1907,1907,1158,1907,
            185,184,206,1907,1907,1907,1907,1907,1907,1907,
            1907,467,1936,2928
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
	public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            403,1,149,105,149,149,149,149,149,149,
            149,149,149,149,149,149,67,10,87,84,
            91,89,97,95,99,98,101,100,73,149,
            10,368,368,432,149,286,286,329,10,149,
            149,149,149,149,149,149,149,149,149,149,
            149,149,149,149,149,149,149,149,149,149,
            149,149,149,149,149,149,149,149,149,286,
            286,109,116,333,140,335,284,283,301,3,
            313,136,313,136,136,313,136,313,30,237,
            84,84,89,89,89,89,87,87,95,91,
            91,98,97,65,100,99,138,228,138,329,
            333,143,109,53,173,286,371,338,173,136,
            368,368,136,368,149,228,114,333,321,53,
            109,172,140,286,327,30,285,340,109,173,
            138,198,138,231,114,321,321,149,149,109,
            173,335,290,289,333,340,286,138,198,231,
            231,233,298,321,53,109,109,286,371,338,
            327,198,228,60,198,231,233,427,233,228,
            112,430,368,149,297,53,321,340,198,62,
            233,228,149,368,67,116,109,368,149,321,
            286,285,228,293,149,292,168,333,228,109,
            369,62,149,168
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
	public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            89,0,5,68,38,58,39,75,14,18,
            20,21,22,23,2,16,17,15,4,12,
            13,25,26,27,28,29,30,31,32,1,
            3,53,54,55,48,40,45,43,44,42,
            41,46,47,49,50,51,37,34,19,33,
            36,35,6,7,8,10,9,11,0,75,
            5,4,1,2,68,0,14,2,61,76,
            16,17,69,79,80,81,82,83,85,84,
            86,87,88,4,62,63,12,13,57,56,
            64,65,66,67,70,71,15,72,73,74,
            52,75,77,78,68,39,89,38,58,5,
            0,5,52,14,61,16,17,15,4,12,
            13,25,26,18,30,31,32,2,20,21,
            22,23,27,28,29,1,3,24,0,58,
            5,19,6,7,8,9,10,11,20,21,
            22,23,27,28,29,3,16,17,15,12,
            13,25,26,18,30,31,32,4,2,1,
            0,19,58,5,16,17,15,4,12,13,
            25,26,18,30,31,32,2,1,3,20,
            21,22,23,27,28,29,0,33,40,6,
            41,53,34,42,35,43,44,36,7,45,
            46,19,54,37,55,47,48,8,49,50,
            51,1,3,9,10,11,60,5,52,0,
            1,3,5,52,38,0,7,19,37,8,
            36,35,34,6,33,9,10,11,61,76,
            16,17,15,12,13,62,63,56,57,64,
            65,66,67,70,71,72,73,74,77,78,
            69,79,80,81,82,83,84,85,86,87,
            88,4,2,14,38,39,5,0,2,39,
            14,68,75,5,38,0,69,14,61,0,
            48,40,45,43,44,42,41,46,47,49,
            50,51,68,75,37,34,19,33,36,35,
            6,7,8,9,10,11,38,1,5,39,
            2,14,4,0,4,2,14,39,5,33,
            40,6,41,53,34,42,35,43,44,36,
            7,45,46,19,54,37,55,47,48,8,
            49,50,51,9,10,11,59,3,1,0,
            4,33,40,6,41,53,34,42,35,43,
            44,36,7,45,46,19,54,37,55,47,
            48,8,49,50,51,1,3,9,10,11,
            59,0,18,20,21,22,23,1,3,2,
            16,17,15,4,12,13,25,26,27,28,
            29,30,31,32,60,0,5,38,52,69,
            0,5,39,18,20,21,22,23,1,3,
            2,16,17,15,4,12,13,25,26,27,
            28,29,30,31,32,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
	public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static byte nasb[] = {0,
            100,37,28,37,28,28,28,28,28,28,
            28,28,28,28,28,28,37,103,37,37,
            37,37,37,37,37,37,37,37,37,28,
            103,21,21,121,104,78,78,85,1,28,
            28,28,28,28,28,28,28,28,28,28,
            28,28,28,28,28,104,28,28,28,28,
            28,28,28,28,28,28,28,28,28,78,
            78,42,47,13,40,84,51,51,58,9,
            59,19,59,69,69,59,68,59,53,37,
            37,37,37,37,37,37,37,37,37,37,
            37,37,37,37,37,37,48,66,37,89,
            37,44,42,107,41,78,95,77,41,7,
            7,7,7,7,28,23,66,37,75,107,
            42,41,124,78,62,30,37,97,42,41,
            38,66,37,66,26,75,66,28,28,42,
            41,61,51,51,13,97,78,37,109,66,
            7,82,11,66,107,42,42,78,95,77,
            71,66,23,16,113,7,82,37,37,23,
            25,37,7,28,80,107,124,117,109,64,
            82,23,28,7,93,27,42,7,28,124,
            78,78,23,17,28,37,64,13,23,42,
            37,64,28,73
        };
    };
    public final static byte nasb[] = Nasb.nasb;
    @Override
	public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            80,78,77,67,76,75,1,0,103,0,
            100,0,29,52,0,11,71,0,91,0,
            72,0,41,0,88,11,54,5,0,80,
            79,78,77,67,76,75,0,92,0,11,
            5,21,0,5,11,0,5,54,49,0,
            28,0,67,62,63,64,65,55,30,0,
            26,46,45,37,35,11,0,94,68,0,
            46,45,37,35,29,0,11,26,0,102,
            0,61,0,26,45,46,11,0,46,45,
            29,0,98,0,29,52,11,27,0,11,
            89,0,51,11,48,0,58,0,82,11,
            51,0,11,51,69,0,95,11,27,0,
            11,90,0,22,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
	public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            85,2,86,9,87,48,64,76,96,97,
            98,10,11,1,8,6,7,68,69,81,
            82,83,84,3,12,13,93,94,95,100,
            101,102,44,55,60,63,72,42,90,47,
            52,56,61,62,66,67,74,75,78,79,
            80,91,54,70,73,16,17,89,30,107,
            4,14,15,18,19,20,21,29,31,22,
            23,24,25,26,92,5,27,28,32,33,
            34,35,36,37,38,39,40,41,108,45,
            46,49,50,51,53,57,58,59,65,71,
            77,88,99,103,104,105,106
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
	public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            114,0,0,0,116,120,121,122,123,124,
            0,125,126,127,128,129,130,131,0,132,
            110,142,0,0,0,111,135,163,0,141,
            0,0,0,159,161,0,162,0,0,0,
            112,0,134,172,173,174,0,115,119,150,
            154,160,169,0,144,0,164,167,168,171,
            0,145,146,147,148,149,151,0,153,158,
            113,117,118,133,136,137,138,139,140,143,
            0,152,156,0,0,157,166,176,109,0,
            0,0,155,0,165,170,175,0,177,178,
            0,179,180,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
	public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            108,139,118,47,57,147,12,174,21,75,
            93,63,28,71,40,129,199,203,40,40,
            183,40,1,1,1,32,35,80,103,35,
            207,6,133,190,190,165,125,153,153,153,
            153,153,83,83,83
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
	public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            116,116,116,4,4,116,18,180,26,4,
            26,68,26,4,4,127,26,4,44,68,
            187,53,4,4,4,26,38,4,26,106,
            26,9,136,193,196,168,127,155,157,159,
            161,163,90,85,98
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
	public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            64,62,64,28,28,62,49,111,47,28,
            40,28,47,28,28,69,5,5,28,28,
            19,28,103,102,101,45,60,28,37,50,
            3,88,69,7,5,112,69,79,78,77,
            76,75,40,38,40
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
	public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            52,52,52,58,58,52,52,95,39,58,
            39,20,39,58,58,75,39,58,4,20,
            68,19,58,58,58,39,2,58,39,1,
            39,69,1,39,39,101,75,1,53,54,
            54,48,2,2,2
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
	public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static byte scopeStateSet[] = {
            25,25,25,29,29,25,19,-1,33,29,
            9,29,33,29,29,5,40,40,29,29,
            74,29,17,1,3,33,35,29,9,11,
            40,101,5,46,40,-1,5,26,26,26,
            26,26,9,9,9
        };
    };
    public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
	public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            150,14,0,110,0,206,118,0,31,149,
            0,168,204,118,24,161,0,112,0,0,
            164,118,2,152,0,111,0,164,118,2,
            0,167,2,0,159,118,0,172,0,194,
            118,14,0,9,110,0,127,19,194,118,
            14,0,69,132,110,0,127,194,118,19,
            14,0,194,118,19,14,0,132,110,0,
            127,19,14,0,127,194,118,14,0,127,
            14,0,144,0,2,0,165,111,0,2,
            111,0,164,118,2,144,0,2,0,164,
            111,0,157,2,0,159,0,168,192,118,
            24,108,201,53,0,112,0,168,192,118,
            24,201,53,0,158,0,113,0,200,118,
            158,0,118,158,0,155,113,0,188,118,
            24,199,108,198,174,0,188,118,24,198,
            174,0,187,0,148,0,147,0,146,0,
            145,0,144,0,214,94,0,77,2,115,
            111,113,0,214,133,155,2,98,0,53,
            0,0,155,78,125,0,29,132,0,180,
            2,0,111,121,0,111,119,0,197,2,
            112,0,155,14,112,0,155,2,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
	public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            1412,0,392,0,1772,1774,1749,0,1605,1302,
            1407,1481,1332,1224,1194,0,387,0,576,467,
            400,1146,1098,0,1156,495,366,0,1410,1257,
            1155,1154,1302,1500,1224,1194,1496,1670,0,1732,
            1718,1703,1609,1323,563,1617,1595,1587,1098,1291,
            498,1308,534,1396,1383,1350,706,695,1469,1458,
            1426,455,1690,1682,1671,1373,1275,1662,1654,1646,
            1625,1482,1448,1158,1126,1106,576,1074,1054,1033,
            1012,717,991,673,652,597,970,949,928,907,
            886,865,844,823,802,781,760,366,739,631,
            467,400,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
	public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,196,118,181,32,31,30,18,26,25,
            13,12,4,15,17,16,112,2,116,115,
            119,117,121,120,123,122,125,124,113,38,
            2,76,61,2,14,180,155,158,118,13,
            12,63,62,4,67,66,65,64,56,57,
            15,71,70,73,72,78,77,74,88,87,
            86,84,85,83,82,81,80,79,69,180,
            197,155,133,118,14,2,153,152,182,10,
            183,174,184,55,54,185,53,186,187,108,
            115,115,117,117,117,117,116,116,120,119,
            119,122,121,155,124,123,133,24,161,159,
            136,19,127,118,4,167,118,2,14,198,
            175,175,201,175,68,118,24,136,4,118,
            127,194,165,164,134,118,166,118,150,4,
            108,24,108,24,118,4,136,194,19,127,
            4,2,142,144,118,38,164,199,118,24,
            118,204,118,136,118,127,127,157,118,2,
            159,24,188,158,189,118,192,108,193,168,
            38,206,61,14,207,118,165,118,118,118,
            192,168,69,38,148,69,150,61,14,165,
            164,202,188,200,68,157,2,118,168,150,
            38,38,68,159
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
	public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            "{",
            ".",
            "->",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "auto",
            "break",
            "case",
            "char",
            "const",
            "continue",
            "default",
            "do",
            "double",
            "else",
            "enum",
            "extern",
            "float",
            "for",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "register",
            "restrict",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "struct",
            "switch",
            "typedef",
            "union",
            "unsigned",
            "void",
            "volatile",
            "while",
            "_Bool",
            "_Complex",
            "_Imaginary",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "MYTHREAD",
            "THREADS",
            "UPC_MAX_BLOCKSIZE",
            "relaxed",
            "shared",
            "strict",
            "upc_barrier",
            "upc_localsizeof",
            "upc_blocksizeof",
            "upc_elemsizeof",
            "upc_notify",
            "upc_fence",
            "upc_wait",
            "upc_forall",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "no_sizeof_type_id_start",
            "]",
            ")",
            "}",
            ";",
            "identifier_token",
            "expression",
            "postfix_expression",
            "member_name",
            "type_id",
            "initializer_list",
            "unary_expression",
            "cast_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "expression_list_actual",
            "constant_expression",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "struct_or_union_declaration_sp" +
            "ecifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "typdef_name_declaration_specif" +
            "iers",
            "no_type_declaration_specifier",
            "type_qualifier",
            "no_type_declaration_specifiers",
            "simple_type_specifier",
            "struct_or_union_specifier",
            "elaborated_specifier",
            "enum_specifier",
            "type_name_specifier",
            "initializer",
            "declarator",
            "struct_or_union",
            "struct_declaration_list",
            "struct_declaration",
            "specifier_qualifier_list",
            "struct_declarator_list",
            "complete_struct_declarator",
            "enumerator_list",
            "enumerator",
            "direct_declarator",
            "pointer_seq",
            "array_direct_declarator",
            "basic_direct_declarator",
            "array_modifier",
            "parameter_type_list",
            "identifier_list",
            "array_modifier_type_qualifiers",
            "type_qualifier_list",
            "parameter_list",
            "parameter_declaration",
            "complete_parameter_declarator",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "initializer_seq",
            "designated_initializer",
            "designation",
            "designator_list",
            "designator",
            "layout_qualifier"
        };
    };
    public final static String name[] = Name.name;
    @Override
	public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 60,
           SCOPE_UBOUND      = 44,
           SCOPE_SIZE        = 45,
           MAX_NAME_LENGTH   = 38;

    @Override
	public final int getErrorSymbol() { return ERROR_SYMBOL; }
    @Override
	public final int getScopeUbound() { return SCOPE_UBOUND; }
    @Override
	public final int getScopeSize() { return SCOPE_SIZE; }
    @Override
	public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 214,
           NT_OFFSET         = 107,
           LA_STATE_OFFSET   = 2272,
           MAX_LA            = 2,
           NUM_RULES         = 365,
           NUM_NONTERMINALS  = 131,
           NUM_SYMBOLS       = 238,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 1700,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 89,
           EOLT_SYMBOL       = 89,
           ACCEPT_ACTION     = 1894,
           ERROR_ACTION      = 1907;

    public final static boolean BACKTRACK = true;

    @Override
	public final int getNumStates() { return NUM_STATES; }
    @Override
	public final int getNtOffset() { return NT_OFFSET; }
    @Override
	public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    @Override
	public final int getMaxLa() { return MAX_LA; }
    @Override
	public final int getNumRules() { return NUM_RULES; }
    @Override
	public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    @Override
	public final int getNumSymbols() { return NUM_SYMBOLS; }
    @Override
	public final int getSegmentSize() { return SEGMENT_SIZE; }
    @Override
	public final int getStartState() { return START_STATE; }
    @Override
	public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    @Override
	public final int getEoftSymbol() { return EOFT_SYMBOL; }
    @Override
	public final int getEoltSymbol() { return EOLT_SYMBOL; }
    @Override
	public final int getAcceptAction() { return ACCEPT_ACTION; }
    @Override
	public final int getErrorAction() { return ERROR_ACTION; }
    @Override
	public final boolean isValidForParser() { return isValidForParser; }
    @Override
	public final boolean getBacktrack() { return BACKTRACK; }

    @Override
	public final int originalState(int state) {
        return -baseCheck[state];
    }
    @Override
	public final int asi(int state) {
        return asb[originalState(state)];
    }
    @Override
	public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    @Override
	public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    @Override
	public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    @Override
	public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    @Override
	public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
